//题目地址 https://www.acwing.com/problem/content/1229/
//二分法 用第二个模板
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int h[N],w[N];//数组 储存巧克力的长宽
int n,k;
//二分的判断条件
bool check(int x){
	int sum=0;
	for(int i=0;i<n;i++){
		sum+=(h[i]/x)*(w[i]/x);//分到巧克力的数量，不是面积的简单分割 (h[i]/x)*(w[i]/x) 每个巧克力长宽允许切割几行几列，再相乘得到矩阵
		if(sum>=k)return true; //大于等于人数时满足条件 返回true
	}
	return  false;
}
int main(){
	scanf("%d%d",&n,&k);
	for(int i=0;i<n;i++)cin>>h[i]>>w[i];
	int l=0,r=1e5;//最大数值为100000，作为二分区间
	while(l<r){
		int mid=l+r+1>>1;//l=mid 需要+1防止陷入死循环
		if(check(mid))l=mid;//左边是满足check的全部值，依次增大，找到左边最大的值
		else r=mid-1;
	}
	cout<<l<<endl;
	return 0;
}